package com.ruicar.afs.cloud.channel.channelworkflow.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruicar.afs.cloud.channel.affiliation.condition.AffiliationCondition;
import com.ruicar.afs.cloud.channel.channelworkflow.condition.ChannelOnlineWorkFlowCondition;
import com.ruicar.afs.cloud.channel.channelworkflow.entity.WorkTaskAssign;
import com.ruicar.afs.cloud.channel.channelworkflow.vo.AffiliationWorkTaskVo;
import com.ruicar.afs.cloud.channel.channelworkflow.vo.CarDealerWorkTaskVo;
import com.ruicar.afs.cloud.channel.channelworkflow.vo.ChannelOnlineWorkTaskVo;

import java.util.List;

/**
 * @author mingzhi.li
 */
public interface WorkTaskAssignService extends IService<WorkTaskAssign> {
    /**
     * 多条件分页渠道上线分页列表数据
     *
     * @param page
     * @param condition
     * @return
     */
    IPage<List<ChannelOnlineWorkTaskVo>> getChannelWorkFlowInfo(Page page, ChannelOnlineWorkFlowCondition condition);

    IPage<List<CarDealerWorkTaskVo>> getCommoncarDealerWorkflowInfo(Page page, ChannelOnlineWorkFlowCondition condition);

    IPage<List<CarDealerWorkTaskVo>> getDirectCarDealerWorkFlowDataByCondition(Page page, ChannelOnlineWorkFlowCondition condition);

    IPage<List<ChannelOnlineWorkTaskVo>> getAccountInfoList(Page page, ChannelOnlineWorkFlowCondition condition);

    IPage<List<AffiliationWorkTaskVo>> getAffiliationWorkflowInfo(Page page, AffiliationCondition condition,List<String> roles);

    IPage<ChannelOnlineWorkTaskVo> getChannelQuotaTaskByCondition(Page page, ChannelOnlineWorkFlowCondition condition);
}
